home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / awt / Component$BltBufferStrategy.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.9 KB  |  160 lines

  1. package java.awt;
  2.  
  3. import java.awt.image.BufferStrategy;
  4. import java.awt.image.ImageObserver;
  5. import java.awt.image.VolatileImage;
  6. import sun.java2d.SunGraphics2D;
  7.  
  8. public class Component$BltBufferStrategy extends BufferStrategy {
  9.    protected BufferCapabilities caps;
  10.    protected VolatileImage[] backBuffers;
  11.    protected boolean validatedContents;
  12.    protected int width;
  13.    protected int height;
  14.    private Insets insets;
  15.    // $FF: synthetic field
  16.    final Component this$0;
  17.  
  18.    protected Component$BltBufferStrategy(Component var1, int var2, BufferCapabilities var3) {
  19.       this.this$0 = var1;
  20.       this.caps = var3;
  21.       this.createBackBuffers(var2 - 1);
  22.    }
  23.  
  24.    public void dispose() {
  25.       if (this.backBuffers != null) {
  26.          for(int var1 = this.backBuffers.length - 1; var1 >= 0; --var1) {
  27.             if (this.backBuffers[var1] != null) {
  28.                this.backBuffers[var1].flush();
  29.                this.backBuffers[var1] = null;
  30.             }
  31.          }
  32.       }
  33.  
  34.       if (this.this$0.bufferStrategy == this) {
  35.          this.this$0.bufferStrategy = null;
  36.       }
  37.  
  38.    }
  39.  
  40.    protected void createBackBuffers(int var1) {
  41.       if (var1 == 0) {
  42.          this.backBuffers = null;
  43.       } else {
  44.          this.width = this.this$0.getWidth();
  45.          this.height = this.this$0.getHeight();
  46.          this.insets = Component.access$000(this.this$0);
  47.          int var2 = this.width - this.insets.left - this.insets.right;
  48.          int var3 = this.height - this.insets.top - this.insets.bottom;
  49.          var2 = Math.max(1, var2);
  50.          var3 = Math.max(1, var3);
  51.          if (this.backBuffers == null) {
  52.             this.backBuffers = new VolatileImage[var1];
  53.          } else {
  54.             for(int var4 = 0; var4 < var1; ++var4) {
  55.                if (this.backBuffers[var4] != null) {
  56.                   this.backBuffers[var4].flush();
  57.                   this.backBuffers[var4] = null;
  58.                }
  59.             }
  60.          }
  61.  
  62.          for(int var7 = 0; var7 < var1; ++var7) {
  63.             this.backBuffers[var7] = this.this$0.createVolatileImage(var2, var3);
  64.          }
  65.       }
  66.  
  67.    }
  68.  
  69.    public BufferCapabilities getCapabilities() {
  70.       return this.caps;
  71.    }
  72.  
  73.    public Graphics getDrawGraphics() {
  74.       this.revalidate();
  75.       Image var1 = this.getBackBuffer();
  76.       if (var1 == null) {
  77.          return this.this$0.getGraphics();
  78.       } else {
  79.          SunGraphics2D var2 = (SunGraphics2D)var1.getGraphics();
  80.          var2.constrain(-this.insets.left, -this.insets.top, var1.getWidth((ImageObserver)null) + this.insets.left, var1.getHeight((ImageObserver)null) + this.insets.top);
  81.          return var2;
  82.       }
  83.    }
  84.  
  85.    Image getBackBuffer() {
  86.       return this.backBuffers != null ? this.backBuffers[this.backBuffers.length - 1] : null;
  87.    }
  88.  
  89.    public void show() {
  90.       this.showSubRegion(this.insets.left, this.insets.top, this.width - this.insets.right, this.height - this.insets.bottom);
  91.    }
  92.  
  93.    void showSubRegion(int var1, int var2, int var3, int var4) {
  94.       if (this.backBuffers != null) {
  95.          var1 -= this.insets.left;
  96.          var3 -= this.insets.left;
  97.          var2 -= this.insets.top;
  98.          var4 -= this.insets.top;
  99.          Graphics var5 = this.this$0.getGraphics_NoClientCode();
  100.          if (var5 != null) {
  101.             try {
  102.                var5.translate(this.insets.left, this.insets.top);
  103.  
  104.                for(int var6 = 0; var6 < this.backBuffers.length; ++var6) {
  105.                   var5.drawImage(this.backBuffers[var6], var1, var2, var3, var4, var1, var2, var3, var4, (ImageObserver)null);
  106.                   var5.dispose();
  107.                   Object var14 = null;
  108.                   var5 = this.backBuffers[var6].getGraphics();
  109.                }
  110.             } finally {
  111.                if (var5 != null) {
  112.                   var5.dispose();
  113.                }
  114.  
  115.             }
  116.  
  117.          }
  118.       }
  119.    }
  120.  
  121.    protected void revalidate() {
  122.       this.revalidate(true);
  123.    }
  124.  
  125.    void revalidate(boolean var1) {
  126.       this.validatedContents = false;
  127.       if (this.backBuffers != null) {
  128.          if (var1) {
  129.             Insets var2 = Component.access$000(this.this$0);
  130.             if (this.this$0.getWidth() != this.width || this.this$0.getHeight() != this.height || !var2.equals(this.insets)) {
  131.                this.createBackBuffers(this.backBuffers.length);
  132.                this.validatedContents = true;
  133.             }
  134.          }
  135.  
  136.          GraphicsConfiguration var4 = this.this$0.getGraphicsConfiguration_NoClientCode();
  137.          int var3 = this.backBuffers[this.backBuffers.length - 1].validate(var4);
  138.          if (var3 == 2) {
  139.             if (var1) {
  140.                this.createBackBuffers(this.backBuffers.length);
  141.                this.backBuffers[this.backBuffers.length - 1].validate(var4);
  142.             }
  143.  
  144.             this.validatedContents = true;
  145.          } else if (var3 == 1) {
  146.             this.validatedContents = true;
  147.          }
  148.  
  149.       }
  150.    }
  151.  
  152.    public boolean contentsLost() {
  153.       return this.backBuffers == null ? false : this.backBuffers[this.backBuffers.length - 1].contentsLost();
  154.    }
  155.  
  156.    public boolean contentsRestored() {
  157.       return this.validatedContents;
  158.    }
  159. }
  160.